using System.Windows.Controls;

namespace FileTransferDesktop.Services;

/// <summary>
/// 系统托盘服务接口
/// </summary>
public interface ITrayService
{
    /// <summary>
    /// 初始化托盘图标
    /// </summary>
    void Initialize();

    /// <summary>
    /// 显示托盘图标
    /// </summary>
    void Show();

    /// <summary>
    /// 隐藏托盘图标
    /// </summary>
    void Hide();

    /// <summary>
    /// 释放托盘资源
    /// </summary>
    void Dispose();

    /// <summary>
    /// 更新托盘图标工具提示
    /// </summary>
    /// <param name="tooltip">工具提示文本</param>
    void UpdateTooltip(string tooltip);

    /// <summary>
    /// 更新托盘菜单
    /// </summary>
    /// <param name="menuItems">菜单项</param>
    void UpdateMenu(ContextMenu menuItems);

    /// <summary>
    /// 显示气球提示
    /// </summary>
    /// <param name="title">标题</param>
    /// <param name="message">消息</param>
    /// <param name="timeout">显示时间（毫秒）</param>
    void ShowBalloonTip(string title, string message, int timeout = 3000);
}
